
package com.xbongbong.admin.model;

import com.xbongbong.admin.domain.entity.RaidersEntity;
import com.xbongbong.paas.toolbox.wrap.IModel;

import java.util.Collection;
import java.util.List;
import java.util.Map;


/**
* @author autoGen
* @time 2019-09-18 13:56:16
*/
public interface RaidersModel  extends IModel<RaidersEntity> {

	Integer save(RaidersEntity entity);

	void insertBatch(List<RaidersEntity> entityList);

	Integer deleteByKey(Long key);

	RaidersEntity getByKey(Long key);

	@Override
	List<RaidersEntity> findEntitys(Map<String, Object> param);

    @Override
	Integer getEntitysCount(Map<String, Object> param);

	/**
	 * 通过分组id获取该分组下的攻略数
	 * @param groupId
	 * @return java.lang.Integer
	 * @throws
	 * @author zcp
	 * @date 19/10/16 016 9:36
	 * @update 19/10/16 016 9:36
	 * @since v1.0
	 * @version v1.0
	 */
	Integer getCountByGroupId(Long groupId);

	/**
	 * 排序--批量操作
	 * @param list
	 * @return java.lang.Integer
	 * @author zcp
	 * @date 19/9/20 020 16:24
	 * @update 19/9/20 020 16:24
	 * @since v1.0
	 * @version v1.0
	 */
	Integer updateSort(List<RaidersEntity> list);

	/**
	 * 批量更新配置
	 * @author xingxing.xiao
	 * @date 2019/12/27 10:13
	 */
	Integer updateSetBatch(List<RaidersEntity> list);

	/**
	 * 获取攻略id列表
	 * @param param
	 * @return java.util.List<java.lang.Long>
	 * @author zcp
	 * @date 19/10/16 016 9:56
	 * @update 19/10/16 016 9:56
	 * @since v1.0
	 * @version v1.0
	 */
	List<Long> getIdList(Map<String ,Object>  param);

	/**
	 * 获取分组下面的攻略，且限制如下条件：
	 * （1）未删除，已发布；
	 * （2）阶段（与当前公司套餐挂钩），通过raidersHelp.stageCodeIn(corpid)方法得到
	 * （3）角色权限过滤，如果未设置角色权限，则默认所有角色权限都可以看到
	 * @param white false不在白名单 true白名单内公司：白名单内的公司，则可以看到未发布的攻略，且不限制阶段（套餐），但是私有攻略还想需要推荐给这个公司才能查看使用
	 * @param groupIdIn 分组id数组
	 * @param stageCodeIn 阶段code数组（根据套餐算出）
	 * @param dataPermission 数据权限
	 * @return java.util.List<com.xbongbong.admin.domain.entity.RaidersEntity>
	 * @author zcp
	 * @date 19/9/24 024 20:21
	 * @update 19/9/24 024 20:21
	 * @since v1.0
	 * @version v1.0
	 */
	List<RaidersEntity> getRaidersList4Filter(boolean white, Collection<Long> groupIdIn, List<Integer> stageCodeIn, Integer dataPermission);

	/**
	 * 获取所有已发布的攻略id列表
	 * @param
	 * @return java.util.List<java.lang.Long>
	 * @author zcp
	 * @date 19/10/16 016 9:58
	 * @update 19/10/16 016 9:58
	 * @since v1.0
	 * @version v1.0
	 */
	List<Long> getPublishRaidersIdList();
}

